package com.oversea.models;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "school")
@org.hibernate.annotations.Entity(dynamicUpdate = true)
public class School extends BaseModel {
	private static final long serialVersionUID = -5404056504167584942L;
	
	private String majors; //学校开设的专业(逗号分隔,不采用多对多关联)
	private Admissionfator admissionfator;  //录取因子
	private String schoolName; // 学校名称 （中英文）
	private String state; // 所在州
	private String city; // 所在市
	private String address; // 学校地址（正规美国地址格式：全英文 不翻译，城市，州等）
	private String webSite; // 网址
	private String contactPhone; // 电话
	private String admissionOfficeEmail; // 招生办邮件
	private String ranking1; // 全球排名
	private String ranking2; // 国内排名
	private String teachLanguage; // 授课语言
	private String foundedTime; // 建校时间
	private int schoolType; // 类型（私立:0，公立:1)
	private int academicTerms; // 学制（学季:0，学期:1）
	private String degrees; // 学位（副学士，学士，硕士，博士）（字符串，"," 分离）
	private int numberOfStudents; // 学生人数
	private int numberOfInternationalStudents; // 国际生人数
	private int numberOfChineseStudents; // 中国留学生人数
	private String teacherToStudentRatio; // 师生比例
	private String undergraduatesToGraduatesRatio; // 本科研究生的学生比例 (%)
	private String popularMajors; // 热门专业和相应的人数比例(字符）
	private String maleToFemaleRatio; // 男生女生的学生比例
	private String instateToOutstateRatio; // 本州和外州的学生比例
	private String raceRatio; // 族裔的学生比例
	private String internationalStudentRatio; // 留学生比例 用数字 %
	private String grantedRatio; // 获得资助的学生比例
	private String internationalStudentGrantedRratio; // 获得资助的国际学生比例
	private String applicationFee; // 申请费
	private String fallDeadline; // 秋季申请截止日
	private String earlyDecisionDeadline; // 提前录取申请截止日
	private String earlyDecisionReplyDeadline; // 提前录取回复日
	private String internationalApplicationDeadline; // 国际生申请截止日
	private String scholarshipDeadline; // 奖学金截止日
	private String tuition; // 每年学费
	private String roomBoard; // 食宿费
	private String campuses; // 分校(字符）
	private String schoolHistory; // 学校历史
	private String schoolEnvironment; // 学校环境
	private String satCode; // SAT代码
	private String toeflCode; // TOEFL代码
	private String greCode; // GRE代码
	private String admissionRatio; // 录取率
	private String lowestRequiredToeflPaperScore; // 国际生最低TOEFL书面成绩
	private String lowestRequiredToeflMachineScore; // 国际生最低TOEFL机考成绩
	private String averageGpaAdmitted; // 录取的平均GPA

	@Column(columnDefinition="varchar(500) default ',0,'")
	public String getMajors() {
		return majors;
	}

	public void setMajors(String majors) {
		this.majors = majors;
	}

	@OneToOne(cascade= {CascadeType.ALL}, fetch=FetchType.LAZY)
	@JoinColumn(name = "admissionfator_id",unique=true)
	public Admissionfator getAdmissionfator() {
		return admissionfator;
	}

	public void setAdmissionfator(Admissionfator admissionfator) {
		this.admissionfator = admissionfator;
	}

	public String getSchoolName() {
		return schoolName;
	}

	public void setSchoolName(String schoolName) {
		this.schoolName = schoolName;
	}

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getWebSite() {
		return webSite;
	}

	public void setWebSite(String webSite) {
		this.webSite = webSite;
	}

	public String getContactPhone() {
		return contactPhone;
	}

	public void setContactPhone(String contactPhone) {
		this.contactPhone = contactPhone;
	}

	public String getAdmissionOfficeEmail() {
		return admissionOfficeEmail;
	}

	public void setAdmissionOfficeEmail(String admissionOfficeEmail) {
		this.admissionOfficeEmail = admissionOfficeEmail;
	}

	public String getRanking1() {
		return ranking1;
	}

	public void setRanking1(String ranking1) {
		this.ranking1 = ranking1;
	}

	public String getRanking2() {
		return ranking2;
	}

	public void setRanking2(String ranking2) {
		this.ranking2 = ranking2;
	}

	public String getTeachLanguage() {
		return teachLanguage;
	}

	public void setTeachLanguage(String teachLanguage) {
		this.teachLanguage = teachLanguage;
	}

	public String getFoundedTime() {
		return foundedTime;
	}

	public void setFoundedTime(String foundedTime) {
		this.foundedTime = foundedTime;
	}

	public int getSchoolType() {
		return schoolType;
	}

	public void setSchoolType(int schoolType) {
		this.schoolType = schoolType;
	}

	public int getAcademicTerms() {
		return academicTerms;
	}

	public void setAcademicTerms(int academicTerms) {
		this.academicTerms = academicTerms;
	}

	public String getDegrees() {
		return degrees;
	}

	public void setDegrees(String degrees) {
		this.degrees = degrees;
	}

	public int getNumberOfStudents() {
		return numberOfStudents;
	}

	public void setNumberOfStudents(int numberOfStudents) {
		this.numberOfStudents = numberOfStudents;
	}

	public int getNumberOfInternationalStudents() {
		return numberOfInternationalStudents;
	}

	public void setNumberOfInternationalStudents(
			int numberOfInternationalStudents) {
		this.numberOfInternationalStudents = numberOfInternationalStudents;
	}

	public int getNumberOfChineseStudents() {
		return numberOfChineseStudents;
	}

	public void setNumberOfChineseStudents(int numberOfChineseStudents) {
		this.numberOfChineseStudents = numberOfChineseStudents;
	}

	public String getTeacherToStudentRatio() {
		return teacherToStudentRatio;
	}

	public void setTeacherToStudentRatio(String teacherToStudentRatio) {
		this.teacherToStudentRatio = teacherToStudentRatio;
	}

	public String getUndergraduatesToGraduatesRatio() {
		return undergraduatesToGraduatesRatio;
	}

	public void setUndergraduatesToGraduatesRatio(
			String undergraduatesToGraduatesRatio) {
		this.undergraduatesToGraduatesRatio = undergraduatesToGraduatesRatio;
	}

	@Column(columnDefinition = "text")
	public String getPopularMajors() {
		return popularMajors;
	}

	public void setPopularMajors(String popularMajors) {
		this.popularMajors = popularMajors;
	}

	public String getMaleToFemaleRatio() {
		return maleToFemaleRatio;
	}

	public void setMaleToFemaleRatio(String maleToFemaleRatio) {
		this.maleToFemaleRatio = maleToFemaleRatio;
	}

	public String getInstateToOutstateRatio() {
		return instateToOutstateRatio;
	}

	public void setInstateToOutstateRatio(String instateToOutstateRatio) {
		this.instateToOutstateRatio = instateToOutstateRatio;
	}

	public String getRaceRatio() {
		return raceRatio;
	}

	public void setRaceRatio(String raceRatio) {
		this.raceRatio = raceRatio;
	}

	public String getInternationalStudentRatio() {
		return internationalStudentRatio;
	}

	public void setInternationalStudentRatio(String internationalStudentRatio) {
		this.internationalStudentRatio = internationalStudentRatio;
	}

	public String getGrantedRatio() {
		return grantedRatio;
	}

	public void setGrantedRatio(String grantedRatio) {
		this.grantedRatio = grantedRatio;
	}

	public String getInternationalStudentGrantedRratio() {
		return internationalStudentGrantedRratio;
	}

	public void setInternationalStudentGrantedRratio(
			String internationalStudentGrantedRratio) {
		this.internationalStudentGrantedRratio = internationalStudentGrantedRratio;
	}

	public String getApplicationFee() {
		return applicationFee;
	}

	public void setApplicationFee(String applicationFee) {
		this.applicationFee = applicationFee;
	}

	public String getFallDeadline() {
		return fallDeadline;
	}

	public void setFallDeadline(String fallDeadline) {
		this.fallDeadline = fallDeadline;
	}

	public String getEarlyDecisionDeadline() {
		return earlyDecisionDeadline;
	}

	public void setEarlyDecisionDeadline(String earlyDecisionDeadline) {
		this.earlyDecisionDeadline = earlyDecisionDeadline;
	}

	public String getEarlyDecisionReplyDeadline() {
		return earlyDecisionReplyDeadline;
	}

	public void setEarlyDecisionReplyDeadline(String earlyDecisionReplyDeadline) {
		this.earlyDecisionReplyDeadline = earlyDecisionReplyDeadline;
	}

	public String getInternationalApplicationDeadline() {
		return internationalApplicationDeadline;
	}

	public void setInternationalApplicationDeadline(
			String internationalApplicationDeadline) {
		this.internationalApplicationDeadline = internationalApplicationDeadline;
	}

	public String getScholarshipDeadline() {
		return scholarshipDeadline;
	}

	public void setScholarshipDeadline(String scholarshipDeadline) {
		this.scholarshipDeadline = scholarshipDeadline;
	}

	public String getTuition() {
		return tuition;
	}

	public void setTuition(String tuition) {
		this.tuition = tuition;
	}

	public String getRoomBoard() {
		return roomBoard;
	}

	public void setRoomBoard(String roomBoard) {
		this.roomBoard = roomBoard;
	}

	public String getCampuses() {
		return campuses;
	}

	public void setCampuses(String campuses) {
		this.campuses = campuses;
	}

	@Column(columnDefinition = "text")
	public String getSchoolHistory() {
		return schoolHistory;
	}

	public void setSchoolHistory(String schoolHistory) {
		this.schoolHistory = schoolHistory;
	}

	@Column(columnDefinition = "text")
	public String getSchoolEnvironment() {
		return schoolEnvironment;
	}

	public void setSchoolEnvironment(String schoolEnvironment) {
		this.schoolEnvironment = schoolEnvironment;
	}

	public String getSatCode() {
		return satCode;
	}

	public void setSatCode(String satCode) {
		this.satCode = satCode;
	}

	public String getToeflCode() {
		return toeflCode;
	}

	public void setToeflCode(String toeflCode) {
		this.toeflCode = toeflCode;
	}

	public String getGreCode() {
		return greCode;
	}

	public void setGreCode(String greCode) {
		this.greCode = greCode;
	}

	public String getAdmissionRatio() {
		return admissionRatio;
	}

	public void setAdmissionRatio(String admissionRatio) {
		this.admissionRatio = admissionRatio;
	}

	public String getLowestRequiredToeflPaperScore() {
		return lowestRequiredToeflPaperScore;
	}

	public void setLowestRequiredToeflPaperScore(
			String lowestRequiredToeflPaperScore) {
		this.lowestRequiredToeflPaperScore = lowestRequiredToeflPaperScore;
	}

	public String getLowestRequiredToeflMachineScore() {
		return lowestRequiredToeflMachineScore;
	}

	public void setLowestRequiredToeflMachineScore(
			String lowestRequiredToeflMachineScore) {
		this.lowestRequiredToeflMachineScore = lowestRequiredToeflMachineScore;
	}

	public String getAverageGpaAdmitted() {
		return averageGpaAdmitted;
	}

	public void setAverageGpaAdmitted(String averageGpaAdmitted) {
		this.averageGpaAdmitted = averageGpaAdmitted;
	}

}
